home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Quick Edit ƒ / Subject Glossary / Arithmetic next >
Text File  |  1992-12-11  |  3KB  |  128 lines

  1. NUMERIC BASE
  2.  
  3. BASE    -- n
  4.     This value contains the current number base used for the input and output 
  5.     conversions.  
  6. DECIMAL    --    Sets base to 10.
  7. HEX    --    Sets base to 16.
  8. $    -- n : lit    The literal will be interpretted as a base 16 number
  9. DIGIT    c base -- n2 t | f
  10.     Converts the ASCII character c using base into its binary equivalent n2, 
  11.     and leaves a true flag; if conversion fails, leaves a false flag only.  
  12.     Digit is a primitive used by (number).  
  13.  
  14.  
  15. COMPILATION ONLY
  16.  
  17. 1+    n -- n+1    
  18. 1-    n -- n-1    
  19. 2+    n -- n+2    
  20. 2-    n -- n-2    
  21. 3+    n -- n+3    
  22. 3-    n -- n-3    
  23. 4+    n -- n+4    
  24. 4-    n -- n-4    
  25.  
  26.  
  27. DIADIC OPERATORS
  28.  
  29. *    n1 n2 -- n1*n2    
  30. *W    n1 n2 -- n1*n2
  31.     Faster than * on a 68000 if you know that the operands are in the range 
  32.     -32768 to +32767.  
  33. +    n1 n2 -- n1+n2    
  34. +-    n1 n2 -- n3    Sets the sign of n1 to that of n2, left as n3.
  35. -    n1 n2 -- n1-n2    
  36. /    n1 n2 -- n1/n2    
  37. MAX    n1 n2 -- max    
  38. MIN    n1 n2 -- min    
  39.  
  40.  
  41. MONADIC OPERATORS
  42.  
  43. ABS    n -- |n|    
  44. NEGATE    n -- -n    Changes the sign of n.
  45. RANDOM    n -- rand*n
  46.     Returns a random number from 0 to n-1 inclusive.  n is limited to an Int 
  47.     value.  Larger than that means that numbers will be poorly distributed.  
  48.     Uses the Toolbox call Random, but is not the same.  
  49.  
  50. PREFIX OPERATORS   Use for values, local variables, named input parameters.
  51.  
  52. ->    n --  : word    Gazinta.  Stores n.  Can also use to store a cfa into a vect.
  53. ++>    n --  : word    Adds n.
  54. -->    n --  : word    Subtracts n.
  55. NEG>    --  : word    Negates.
  56. AND>    n --  : word    Logically ands with n.
  57. OR>    n --  : word      Logically ors with n.
  58. XOR>    n --  : word    Logically xors with n.
  59. NOT>    --  : word  Logically nots.
  60.  
  61.  
  62. MODULO
  63.  
  64. MOD    n1 n2 -- rem    Leaves remainder of division of n1 by n2.
  65. /MOD    n1 n2 -- rem n1/n2
  66.     divides n1 by n2 leaving the remainder under the signed quotient.
  67. /MODW    n1 n2 -- rem n1/n2
  68.     Faster version of /mod on a 68000 if you know that the operands are in 
  69.     the range -32768 to +32767.  
  70. */MOD    n1 n2 n3 --  rem  (n1*n2)/n3    
  71.     Same as */ except also leaves the remainder of the division.
  72.  
  73.  
  74. COMPARISONS
  75.  
  76. <    n1 n2 -- b    
  77. <=    n1 n2 -- b    less than or equal
  78. <>    n1 n2 -- b    not equal, perhaps we could use ≠ ?
  79. =    n1 n2 -- b    
  80. >    n1 n2 -- b    
  81. >=    n1 n2 -- b    greater than or equal
  82.  
  83. 0<    n -- b    less than zero
  84. 0<=    n -- b    less than or equal to zero
  85. 0<>    n -- b    not equal to zero
  86. 0=    n -- b    
  87. 0>    n -- b    greater than zero
  88. 0>=    n -- b    greater than or equal to zero
  89.  
  90. WITHIN?    n lo hi -- n b    Returns true if  lo <= n <= hi.
  91. NOT    b -- -b    Reverses the sense of a boolean.
  92. TRUE    -- b    A constant = -1
  93. FALSE    -- b    A constant = 0
  94.  
  95.  
  96. LOGICAL
  97.  
  98. \ and, or, and xor perform 32-bit bit-wise logic
  99. AND    n1 n2 -- and    
  100. OR    n1 n2 -- or    
  101. XOR    n1 n2 -- xor    
  102.  
  103.  
  104. UNSIGNED
  105.  
  106. U<    u1 u2 -- b    
  107. U>    u1 u2 -- b    
  108. U/MOD    n1 n2 -- rem n1/n2
  109.     divides n1 by n2 leaving the remainder under the unsigned quotient.
  110. U/MODW    ?    
  111.  
  112.  
  113. SPECIAL
  114.  
  115. */    n1 n2 n3 --  (n1*n2)/n3    
  116.     Multiplies the two signed integers n1 and n2, then divides the double 
  117.     number product by the signed number n3, leaving a signed quotient.  
  118. <<    n s -- n'
  119.     Shifts the bits of n to the left by s shift bits.  e.g.  3 2 << will 
  120.     yield 12 (0011) -> (1100).  
  121. >>    n s -- n'
  122.     Shifts the bits of n to the right by s shift bits.  e.g.  12 2 >> 
  123.     will yield 3 (1100) -> (0011).  
  124. EXTEND    w -- n    Sign extends a 16 bit number to a 32 bit number, stack 
  125.         alignment is unaffected.
  126.  
  127.  
  128.